home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ____SSSSBBBBMMMMVVVV,,,,____HHHHBBBBMMMMVVVV((((3333FFFF)))) ____SSSSBBBBMMMMVVVV,,,,____HHHHBBBBMMMMVVVV((((3333FFFF))))
-
-
-
- NNNNAAAAMMMMEEEE
- dsbmv, ssbmv, zhbmv, chbmv - BLAS Level Two (Symmetric/Hermitian)
- Banded Matrix - Vector Product
-
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN 77777777 SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ddddssssbbbbmmmmvvvv(((( uuuupppplllloooo,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
- cccchhhhaaaarrrraaaacccctttteeeerrrr****1111 uuuupppplllloooo
- iiiinnnntttteeeeggggeeeerrrr nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy
- ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
- ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****)))),,,, yyyy((((****))))
-
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssssssbbbbmmmmvvvv(((( uuuupppplllloooo,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
- cccchhhhaaaarrrraaaacccctttteeeerrrr****1111 uuuupppplllloooo
- iiiinnnntttteeeeggggeeeerrrr nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy
- rrrreeeeaaaallll aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
- rrrreeeeaaaallll aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****)))),,,, yyyy((((****))))
-
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzhhhhbbbbmmmmvvvv(((( uuuupppplllloooo,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
- cccchhhhaaaarrrraaaacccctttteeeerrrr****1111 uuuupppplllloooo
- iiiinnnntttteeeeggggeeeerrrr nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy
- ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
- ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****)))),,,, yyyy((((****))))
-
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee cccchhhhbbbbmmmmvvvv(((( uuuupppplllloooo,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
- cccchhhhaaaarrrraaaacccctttteeeerrrr****1111 uuuupppplllloooo
- iiiinnnntttteeeeggggeeeerrrr nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy
- ccccoooommmmpppplllleeeexxxx aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
- ccccoooommmmpppplllleeeexxxx aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****)))),,,, yyyy((((****))))
-
-
- CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- vvvvooooiiiidddd ddddssssbbbbmmmmvvvv(((( uuuupppplllloooo,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
- MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee uuuupppplllloooo;;;;
- IIIInnnntttteeeeggggeeeerrrr nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy;;;;
- ddddoooouuuubbbblllleeee aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
- ddddoooouuuubbbblllleeee ((((****aaaa))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]],,,, ((((****yyyy))))[[[[ nnnn ]]]];;;;
-
- vvvvooooiiiidddd ssssssssbbbbmmmmvvvv(((( uuuupppplllloooo,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
- MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee uuuupppplllloooo;;;;
- IIIInnnntttteeeeggggeeeerrrr nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy;;;;
- ffffllllooooaaaatttt aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
- ffffllllooooaaaatttt ((((****aaaa))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]],,,, ((((****yyyy))))[[[[ nnnn ]]]];;;;
-
- vvvvooooiiiidddd zzzzhhhhbbbbmmmmvvvv(((( uuuupppplllloooo,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
- MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee uuuupppplllloooo;;;;
- IIIInnnntttteeeeggggeeeerrrr nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy;;;;
- ZZZZoooommmmpppplllleeeexxxx aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
- ZZZZoooommmmpppplllleeeexxxx ((((****aaaa))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]],,,, ((((****yyyy))))[[[[ nnnn ]]]];;;;
-
- vvvvooooiiiidddd cccchhhhbbbbmmmmvvvv(((( uuuupppplllloooo,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
- MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee uuuupppplllloooo;;;;
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- ____SSSSBBBBMMMMVVVV,,,,____HHHHBBBBMMMMVVVV((((3333FFFF)))) ____SSSSBBBBMMMMVVVV,,,,____HHHHBBBBMMMMVVVV((((3333FFFF))))
-
-
-
- IIIInnnntttteeeeggggeeeerrrr nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy;;;;
- CCCCoooommmmpppplllleeeexxxx aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
- CCCCoooommmmpppplllleeeexxxx ((((****aaaa))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]],,,, ((((****yyyy))))[[[[ nnnn ]]]];;;;
-
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- ddddssssbbbbmmmmvvvv ,,,, ssssssssbbbbmmmmvvvv ,,,, ddddhhhhbbbbmmmmvvvv and cccchhhhbbbbmmmmvvvv perform the matrix-vector operation
-
- y := alpha*A*x + beta*y,
-
- where alpha and beta are scalars, x and y are n element vectors and A is
- an n by n symmetric/hermitian band matrix, with k super-diagonals.
-
-
- PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
- uuuupppplllloooo On entry, uuuupppplllloooo specifies whether the upper or lower triangular
- part of the matrix A is being supplied as follows:
-
-
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN
- uplo = 'U' or 'u' The upper triangular part of A is
- being supplied.
- uplo = 'L' or 'l' The lower triangular part of A is
- being supplied.
-
- CCCC
- uplo = UpperTriangle The upper triangular part of A is
- being supplied.
- uplo = LowerTriangle The lower triangular part of A is
- being supplied.
-
- Unchanged on exit.
-
- nnnn On entry, nnnn specifies the the order of the matrix A. nnnn must be
- at least zero.
- Unchanged on exit.
-
- aaaallllpppphhhhaaaa specifies the scalar alpha.
- Unchanged on exit.
-
- aaaa An array containing the matrix A.
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN
- Array of dimension ( lda, n ).
-
- CCCC
- A pointer to an array of size lda*n.
- See note below about array storage convention for C.
-
- Before entry with uuuupppplllloooo ==== ''''UUUU'''' oooorrrr ''''uuuu'''' oooorrrr , the leading ( k + 1 ) by
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- ____SSSSBBBBMMMMVVVV,,,,____HHHHBBBBMMMMVVVV((((3333FFFF)))) ____SSSSBBBBMMMMVVVV,,,,____HHHHBBBBMMMMVVVV((((3333FFFF))))
-
-
-
- n part of the array A must contain the upper triangular band part
- of the symmetric/hermitian matrix, supplied column by column,
- with the leading diagonal of the matrix in row ( k + 1 ) of the
- array, the first super-diagonal starting at position 2 in row k,
- and so on. The top left k by k triangle of the array A is not
- referenced. The following program segment will transfer the
- upper triangular part of a symmetric/hermitian band matrix from
- conventional full matrix storage to band storage:
-
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN
- DO 20, J = 1, N
- M = K + 1 - J
- DO 10, I = MAX( 1, J - K ), J
- A( M + I, J ) = matrix( I, J )
- 10 CONTINUE
- 20 CONTINUE
- CCCC
- for ( j = 0; j < n; j++ )
- {
- m = k - j;
- for ( i = MAX(0, j-k); i < j )
- a( j*lda + m+i ) = Matrix( j*ldm + i );
- }
-
-
-
- Before entry with UUUUPPPPLLLLOOOO ==== ''''LLLL'''' oooorrrr ''''llll'''' oooorrrr , the leading ( k + 1 ) by
- n part of the array A must contain the lower triangular band part
- of the symmetric/hermitian matrix, supplied column by column,
- with the leading diagonal of the matrix in row 1 of the array,
- the first sub-diagonal starting at position 1 in row 2, and so
- on. The bottom right k by k triangle of the array A is not
- referenced. The following program segment will transfer the
- lower triangular part of a symmetric/hermitian band matrix from
- conventional full matrix storage to band storage:
-
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN
- DO 20, J = 1, N
- M = 1 - J
- DO 10, I = J, MIN( N, J + K )
- A( M + I, J ) = matrix( I, J )
- 10 CONTINUE
- 20 CONTINUE
-
- CCCC
- for ( j = 0; j < n; j++ )
- {
- m = 1 - j;
- for ( i = j; i < MIN( n, j+k ); i++ )
- a( j*lda + m+i ) = Matrix( j*ldm + i );
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- ____SSSSBBBBMMMMVVVV,,,,____HHHHBBBBMMMMVVVV((((3333FFFF)))) ____SSSSBBBBMMMMVVVV,,,,____HHHHBBBBMMMMVVVV((((3333FFFF))))
-
-
-
- }
-
- Unchanged on exit.
-
- llllddddaaaa On entry, llllddddaaaa specifies the first dimension of A as declared in
- the calling (sub) program. llllddddaaaa must be at least ( k + 1 ).
- Unchanged on exit.
-
- xxxx Array of size at least ( 1 + ( n - 1 )*abs( incx ) ). Before
- entry, the incremented array xxxx must contain the n element vector
- x.
- Unchanged on exit.
-
- iiiinnnnccccxxxx On entry, iiiinnnnccccxxxx specifies the increment for the elements of xxxx.
- iiiinnnnccccxxxx must not be zero.
- Unchanged on exit.
-
- bbbbeeeettttaaaa On entry, bbbbeeeettttaaaa specifies the scalar beta. When bbbbeeeettttaaaa is supplied
- as zero then yyyy need not be set on input.
- Unchanged on exit.
-
- yyyy Array of size at least ( 1 + ( n - 1 )*abs( INCY ) ). Before
- entry, the incremented array yyyy must contain the n element vector
- y. On exit, yyyy is overwritten by the updated vector y.
-
- iiiinnnnccccyyyy On entry, iiiinnnnccccyyyy specifies the increment for the elements of yyyy.
- iiiinnnnccccyyyy must not be zero.
- Unchanged on exit.
-
-
- CCCC AAAARRRRRRRRAAAAYYYY SSSSTTTTOOOORRRRAAAAGGGGEEEE CCCCOOOONNNNVVVVEEEENNNNTTTTIIIIOOOONNNN
- The matrices are assumed to be stored in a oooonnnneeee ddddiiiimmmmeeeennnnssssiiiioooonnnnaaaallll CCCC aaaarrrrrrrraaaayyyy
- in an analogous fashion as a Fortran array (column major). Therefore,
- the element A(i+1,j) of matrix A is stored immediately after the
- element A(i,j), while A(i,j+1) is lda elements apart from A(i,j).
- The element A(i,j) of the matrix can be accessed directly by reference
- to a[ (j-1)*lda + (i-1) ].
-
-
- AAAAUUUUTTTTHHHHOOOORRRRSSSS
- Jack Dongarra, Argonne National Laboratory.
- Iain Duff, AERE Harwell.
- Jeremy Du Croz, Numerical Algorithms Group Ltd.
- Sven Hammarling, Numerical Algorithms Group Ltd.
-
-
- TTTTUUUUNNNNIIIINNNNGGGG
- DSBMV and SSBMV are optimized and parallelized for SGI R3000 and
- R4x00 platforms.
- ZHBMV and CHBMV are optimized and parallelized for SGI R3000, R4x00
- and R8000 platforms.
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-